/**
 * 
 */
package by.imotaeva.printing_services.services;

import java.util.List;

import javax.transaction.Transactional;

import by.imotaeva.printing_services.datamodel.BookOrder;
import by.imotaeva.printing_services.datamodel.PrintingProductOrder;

/**
 * @author Inna
 *
 */
public interface BookOrderService {

	BookOrder get(Long id);

	@Transactional
	BookOrder getFullBookOrder(Long id);

	@Transactional
	void createNewBookOrder(BookOrder bookOrder,
			PrintingProductOrder printingProductOrder);

	@Transactional
	void update(BookOrder bookOrder);

	@Transactional
	void removeBookOrder(Long id);

	@Transactional
	List<BookOrder> getAllBookOrders();

	@Transactional
	List<Long> getBookOrderIds();

	@Transactional
	Long getCountBookOrders();

	@Transactional
	void deleteAllBookOrders();
}
